Skip to content

Conversation

@apanda
Copy link
Member

@apanda apanda commented Oct 19, 2015

When statically linking DPDK, not passing in -Wl,--whole-archive means that some
constructors are not called, leading to issues.

This was the original cause for bess not finding PMD ports when using 82599 NICs.

When statically linking DPDK, not passing in -Wl,--whole-archive means that some
constructors are not called, leading to issues.
@apanda
Copy link
Member Author

apanda commented Oct 19, 2015

Actually this is a good point, I keep running into this issue where I forget to unset RTE_SDK, and it really doesn't work, so maybe we should do this too.

sangjinhan added a commit that referenced this pull request Oct 20, 2015
@sangjinhan sangjinhan merged commit 2e0d5f1 into NetSys:develop Oct 20, 2015
@sangjinhan
Copy link
Member

Applied. Thanks!

Yeah, the original idea was to allow users to use their own version of DPDK, although I never tested this scenario myself. :)

Our changes from the original configuration are:

  • CONFIG_RTE_BUILD_COMBINE_LIBS=y (was n)
  • CONFIG_RTE_LIBNAME="dpdk" (was intel_dpdk)
  • CONFIG_RTE_LIBRTE_KNI=n (was y)
  • CONFIG_RTE_LIBRTE_VHOST=y (was n)

The first one allows us to not enumerate all the individual dpdk components in Makefile. The libname was changed since "dpdk" is default in 2.1. KNI causes build errors with very recent kernel versions, but anyways we have our own vport so KNI is not required.

Given that none of them are strictly required to build BESS (VHOST is the only exception, but we can selectively load the driver by checking CONFIG_RTE_LIBRTE_VHOST in vhost_driver.c), I thought supporting custom DPDK would be not a bad idea.

I think we have three options in the long term:

  1. Forcing deps/dpdk
  2. Enumerating all DPDK components in our Makefile (we used to do this)
  3. Using DPDK-provided Makefile (as long as it's not too intrusive): http://dpdk.org/doc/guides/prog_guide/dev_kit_build_system.html#makefile-description

Comments? :)

@apanda apanda deleted the buildfix branch December 4, 2015 20:58
sangjinhan pushed a commit that referenced this pull request Nov 2, 2019
C++-ize RX/TX vector implementation for UnixSocketPort
maryamtahhan pushed a commit to maryamtahhan/bess that referenced this pull request Aug 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants